![]() |
![]() |
|
If stavekIndeks telesne mase1. podnalogaITM oz. indeks telesne mase je številka, s katero lahko v grobem ocenimo
stanje prehranjenosti pri odraslih ljudeh. Če je Težo, ki je podana v kilogramih, imamo zapisano v spremenljivki
Izpis naj bo sledeč:
Primer: za podatke
Uradna rešitevdef dve_decimalki(x): """Funkcija vrne niz, ki vsebuje zapis decimalnega števila x na dve decimalni mesti natančno.""" return '{0:.2f}'.format(x) masa = float(input('Vnesite težo: ')) visina = float(input('Vnesite višino: ')) itm = masa / (visina / 100)**2 print('Vaš ITM:', dve_decimalki(itm)) if itm < 18.5: print('podhranjenost') elif itm < 25: print('normalna prehranjenost') elif itm < 30: print('prekomerna prehranjenost') else: print('debelost') Ednina, dvojina, množina1. podnalogaNapišite funkcijo
Primer, če je vneseno stanje večje ali enako
Primer, če je vneseno stanje nižje od -300 evrov:
Uradna rešitevdef fin_stanje(n): """Vrne opis finančnega stanja.""" if n < -300: return 'Začnite varčevati!' if n >= 1000000: return 'Bogataš!' if abs(n) % 100 == 1: return 'Stanje: ' + str(n) +' evro' if abs(n) % 100 == 2: return 'Stanje: ' + str(n) + ' evra' if abs(n) % 100 == 3 or abs(n) % 100 == 4: return 'Stanje: ' + str(n) + ' evri' return 'Stanje: ' + str(n) + ' evrov' 2. podnalogaSestavite funkcijo
Primer za
Primer za
Primer za
Primer za
Uradna rešitevdef st_ljudi(n): """Vrne niz z opisom števila ljudi v dvorani.""" if n == 0: return 'Dvorana je prazna.' if n < 500: if n % 100 == 1: return 'V dvorani je ' + str(n) + ' človek.' elif n % 100 == 2: return 'V dvorani sta ' + str(n) + ' človeka.' elif n % 100 == 3 or n % 100 == 4: return 'V dvorani so ' + str(n) + ' ljudje.' else: return 'V dvorani je ' + str(n) + ' ljudi.' if n == 500: return 'Dvorana je polna.' # več kot 500 if n % 100 == 1: return 'Dvorana je polna. Zunaj je ostal ' + str(n - 500)+' človek.' elif n % 100 == 2: return 'Dvorana je polna. Zunaj sta ostala ' + str(n - 500)+' človeka.' elif n % 100 == 3 or n % 100 == 4: return 'Dvorana je polna. Zunaj so ostali ' + str(n - 500)+' ljudje.' else: return 'Dvorana je polna. Zunaj je ostalo ' + str(n - 500)+' ljudi.' 3. podnalogaSestavite program, ki prebere naravno število
pri čemer mora biti seveda vse pravilno sklanjano. Uradna rešitevn = int(input('Koliko limon imate? ')) ostanek = n % 100 if ostanek == 1: koncnica = 'o' elif ostanek == 2: koncnica = 'i' elif ostanek == 3 or ostanek == 4: koncnica = 'e' else: koncnica = '' print("Imate {0} limon{1}.".format(n, koncnica)) Dolžinske enote1. podnalogaSestavite funkcijo
Uradna rešitevdef milimetri(kolicina, enota): """Količino v dani enoti pretvori v milimetre.""" if enota == 'm': odg = 1000 * kolicina elif enota == 'dm': odg = 100 * kolicina elif enota == 'cm': odg = 10 * kolicina else: odg = kolicina return odg 2. podnalogaSestavite funkcijo
Pri tem ne smeš uporabiti niti gnezdenih stavkov Uradna rešitevdef milimetriV2(kolicina, enota): """Količino v dani enoti pretvori v milimetre.""" if enota == 'm': return 1000 * kolicina # če smo prišli sem, enota zagotovo niso metri if enota == 'dm': return 100 * kolicina if enota == 'cm': return 10 * kolicina # torej gre za mm return kolicina 3. podnalogaSestavite funkcijo Funkcija naj vrne
Namig: uporabite funkcijo, ki ste jo že napisali. Uradna rešitevdef primerjaj(mera1, enota1, mera2, enota2): """Vrne, katera dolžina je večja.""" # pretvorimo obe razdalji v mm razlika = milimetri(mera1, enota1) - milimetri(mera2, enota2) if razlika > 0: return 'prva' if razlika < 0: return 'druga' # ni se izvedel noben izmed gornjih ukazov return, torej ni bil izpolnjen noben pogoj return 'enaki' 4. podnalogaSestavite funkcijo
Namig: neposredno primerjanje nizov bo dalo napačen rezultat! Uradna rešitevdef primerjaj_enoti(enota1, enota2): """Vrne 1, če je večja enota1, vrne 0, če sta enoti enaki, vrne -1, če je večja enota2.""" primerjava = primerjaj(1, enota1, 1, enota2) # uporabimo funkcijo prejšnje naloge if primerjava == 'prva': return 1 if primerjava == 'druga': return -1 return 0 Indiana Jones1. podnalogaIndiana Jones najde v starem
templju tri zlate kipce, ker pa ima samo dve roki, mora enega pustiti tam.
Pustil bo tistega z najnižjo vrednostjo.
Sestavite funkcijo Možne rešitve so:
Uradna rešitevdef indiana(stevilo1, stevilo2, stevilo3): """Vrne niz, katera kipca se splača vzeti.""" # če so vrednosti vseh kipcev enake, vzamemo poljubna kipca if stevilo1 == stevilo2 == stevilo3: return "Vzame lahko katerakoli dva kipca." # če je vrednost prvega kipca manjša od ostalih, izločimo prvi kipec # podobno naprej if stevilo1 < min(stevilo2, stevilo3): return "Vzeti mora kipca 2 in 3." if stevilo2 < min(stevilo1, stevilo3): return "Vzeti mora kipca 1 in 3." if stevilo3 < min(stevilo1, stevilo2): return "Vzeti mora kipca 1 in 2." # če se dve vrednosti ponovita, potem ločimo primer, ko je tretja vrednost ali večja ali manjša od prvih dveh # če je manjša, vzamemo kipca s prvima dvema vrednostma # če je večja, vzamemo kipec s tretjo vrednostjo in izbiramo med ostalima kipcema if (stevilo1 == stevilo2) and (stevilo3 != stevilo2): if stevilo1 < stevilo3: return "Vzeti mora kipec 3 ter enega od preostalih dveh." else: return "Vzeti mora kipca 1 in 2." if (stevilo1 == stevilo3) and (stevilo3 != stevilo2): if stevilo1 < stevilo2: return "Vzeti mora kipec 2 ter enega od preostalih dveh." else: return "Vzeti mora kipca 1 in 3." if (stevilo2 == stevilo3) and (stevilo1 != stevilo2): if stevilo2 < stevilo1: return "Vzeti mora kipec 1 ter enega od preostalih dveh." else: return "Vzeti mora kipca 2 in 3." 2. podnalogaSedaj pa sestavite funkcijo
Uradna rešitevdef izguba(stevilo1, stevilo2, stevilo3): """Vrne vrednost kipca, ki ga bo Indiana Jones moral pustiti.""" return min(stevilo1, stevilo2, stevilo3) 3. podnalogaSedaj pa sestavite funkcijo
Uradna rešitevdef kateri_vrednosti(stevilo1, stevilo2, stevilo3): """Vrne par vrednosti kipcev, ki ju bo Indiana Jones odnesel iz templja.""" najv = max(stevilo1, stevilo2, stevilo3) najm = min(stevilo1, stevilo2, stevilo3) srednje = stevilo1 + stevilo2 + stevilo3 - najv - najm return srednje, najv Bratska igraZa nalogo potrebujete le znanje definiranja funkcij in pogojnega stavka. 1. podnalogaMatej se rad igra s kamenčki in jih cel dan nabira naokrog. Zvečer ga neskončno zabava, ko njegov mlajši brat poskuša uganiti, koliko jih je nabral. Če brat pove premajhno število, mu Matej odgovori Sestavite funkcijo Primer:
Uradna rešitevdef ugibaj(matej, brat): """Vrne Matejev odgovor.""" if matej > brat: return 'več' elif matej < brat: return 'manj' else: return 'točno' 2. podnalogaDa bi igro popestril, je Matej razdelil kamenčke v obe roki, brat pa mora uganiti število kamenčkov v vsaki roki posebej. Ob vsakem poskusu Matej izračuna absolutno razliko med pravim številom kamenčkov v posamezni roki in bratovim poskusom za število kamenčkov v roki. Nato bratu pove manjše izmed teh dveh števil. Sestavite funkcijo
Uradna rešitevdef ugibaj1(matej_leva, matej_desna, brat_leva, brat_desna): """Vrne vrednost največje razlike.""" razlika1 = abs(matej_leva - brat_leva) razlika2 = abs(matej_desna - brat_desna) if max(razlika1, razlika2) == 0: # uganjeni sta obe return -100 return min(razlika1, razlika2) 3. podnalogaZgornja igra ni bila preveč všeč Matejevemu bratu, saj je običajno trajala
predolgo in je zato brat še pred koncem igre zaspal. Zato je od Mateja
zahteval, da mu za vsako roko pove še, ali je število kamenčkov v njej večje,
manjše oz. enako ugibu. Mateju pa se je to zdelo preveč, zato sta
se odločila za kompromis: Matej bo bratu povedal le, ali je brat
obakrat povedal preveliko število, obakrat premajhno ali pa enkrat premajhno
in drugič preveliko. Ustrezni Matejevi odgovori so Sestavite funkcijo Primer:
Uradna rešitevdef ugibaj2(matej_leva, matej_desna, brat_leva, brat_desna): """Vrne Matejev odgovor.""" razlika_leva = brat_leva - matej_leva razlika_desna = brat_desna - matej_desna if razlika_leva == 0 and razlika_desna == 0: return 'Bravo!' elif razlika_leva >= 0 and razlika_desna >= 0: return 'Obakrat preveč.' elif razlika_leva < 0 and razlika_desna < 0: return 'Obakrat premalo.' else: return 'Preveč in premalo.' Čas za spanje1. podnalogaMarjetka je ravnokar postala mamica. Ker še nima izkušenj, ne ve, koliko
mora njen otrok spati.
Otrok mora po izročilu tete Pehte spati med 20. in 8. uro ter med 12. in 16. uro.
Napišite funkcijo
Uradna rešitevdef spanje(cas): """Vrne niz 'spi' če mora otrok spati, sicer vrne 'bedi'.""" if (cas <= 8) or (cas >= 20) or (12 <= cas <= 16): return 'spi' else: return 'bedi' 2. podnalogaMarjetke ne zanima samo, ali bi moral ob uri spati ali bedeti, ampak tudi
katere ure v dnevu bi moral spati. Napišite še funkcijo
Uradna rešitevdef ure(spanje): """Glede na aktivnost vrne niz s časovnima intervaloma.""" if spanje == 'spi': return 'med 12. in 16. ter 20. in 8.' else: return 'med 8. in 12. ter 16. in 20.'Mesto objave ob koncu projekta 15.9.2018 |